Discovery of network software relationships

ABSTRACT

Embodiments relate to systems and methods for automatic discovery of network software relationships. A set of managed machines, such as personal computers or servers, can be managed by a network management platform communicating with the machines via a secure channel. The network management platform can issue a set of discovery commands interrogating nodes of the network to report software or services which they consume. The network management platform can build a dependency map encoding the dependency or other relationships between nodes in the managed network based on their use of software resources. Network restorations can therefore be conducted in a rational order, maintaining stability in the restored nodes and network.

FIELD

The present teachings relate to systems and methods for automaticdiscovery of network software relationships, and more particularly toplatforms and techniques for the automatic scanning and discovery ofsoftware dependency relationships in managed networks.

BACKGROUND OF RELATED ART

Network management platforms exist which permit a systems administratorto connect to a set of targets in a network, and perform maintenance anddiagnostic activities on that group of managed machines. The networkmanagement platform can identify individual targets via a public key orother security credential, and identify the software provisioningrequirements, obtain a hardware inventory, or perform other managementtasks on validated machines. In general, existing network managementplatforms can be hosted on a central server or other facility thatpermits connection to, identification, and management of the set oftargets.

In terms of the maintenance of machines populated on a network as wellas the maintenance of the network on a comprehensive basis, systemsadministrators from time to time may need to take stock of individualmachines and their network relationships. The managed network may needto be interrogated to determine installation configurations and networkinterconnections, for instance, to prepare for the possible restorationof the network or individual machines in the event of a crash,intrusion, disaster, or other unforeseen hazard.

Existing network management platforms suffer from various limitations ofdesign and function, however, in terms of their ability to manage anylow-level or high-level restoration process. For one, in the event ofthe failure of multiple servers, clients, or other nodes or machines,existing platforms are not equipped to identify the softwaredependencies of one machine on another. For instance, where one serversupports a Web page for commercial online customers whose accounts arestored in a second remote database, it may be necessary to restore thedatabase server first, before the Web server, to ensure account data canbe retrieved using that networked software or service. Besides crashrecovery, the ability to identify software-related dependencies wouldalso prove useful for security management purposes, if that capabilitywere available.

For further instance, in the case of the corruption or loss ofindividual machines, the particular configuration of those machines canbe difficult or impossible to restore using existing network managementplatforms. While individual “kickstart” files reflecting initialconfiguration states can be received from targets or other machinesduring installation, those files can be lost or damaged in existingnetwork management platforms, which have no facility for managing suchfiles. In further regards, existing network management platforms orprovisioning platforms provide no integrated tool to attempt therestoration of an entire datacenter or network, including all individualnodes and taking software dependency into account. Thus, there is a needin the art for methods and systems that provide centralized managementof restoration and related operations.

DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate embodiments of the presentteachings and together with the description, serve to explain theprinciples of the present teachings. In the figures:

FIG. 1 illustrates an overall network in which systems and methods forautomatic discovery of network software relationships can be practiced,according to various embodiments of the present teachings;

FIG. 2 illustrates an overall network in which systems and methods forautomatic discovery of network software relationships can be practicedto various embodiments of the present teachings, including issuance ofdiscovery commands and other features;

FIG. 3 illustrates an illustrative hardware configuration which cansupport systems and methods for automatic discovery of network softwarerelationships according to various embodiments of the present teachings;

FIG. 4 illustrates a flowchart for software dependency processing,according to various embodiments of the present teachings;

FIG. 5 illustrates a flowchart of generation of a reverse kickstartfile, according to various embodiments of the present teachings; and

FIG. 6 illustrates a flowchart of generating a network-scale restorationin controlled physical order, according to various embodiments of thepresent teachings.

DESCRIPTION OF EMBODIMENTS

Embodiments of the present teachings relate to systems and methods forautomatic discovery of network software relationships. Moreparticularly, embodiments relate to platforms and techniques forautomatically probing a managed network to discover software and/orservice dependencies between nodes in the network and other nodes orresources. According to embodiments, the nodes of a managed network canbe interrogated to discover those applications services which supplyinput to a subject node, which services support or interact with a givennode, or which other software-based resources are required for theoperation of a given node. A network management platform can interrogatethe managed network and build a dependency map encoding those and othersoftware relationships. According to embodiments, a systemsadministrator or other user can thereby efficiently restore a disablednetwork in proper logic sequence to allow software and services toresume normal operation.

Reference will now be made in detail to exemplary embodiments of thepresent teachings, which are illustrated in the accompanying drawings.Where possible the same reference numbers will be used throughout thedrawings to refer to the same or like parts.

FIG. 1 illustrates an overall system 100 in which systems and methodsfor automatic discovery of network software relationships can beimplemented, according to various embodiments of the present teachings.In embodiments as shown, network management platform 102 can communicatewith managed network 116 via a secure channel 148. Secure channel 148can for instance be or include the secure channel and related resourcesdescribed in co-pending U.S. application Ser. No. 12/130,424, filed May30, 2008, entitled “Systems and Methods for Remote Management ofNetworked Systems Using Secure Modular Platform,” assigned or underobligation of assignment to the same entity as this application, andwhich application is incorporated by reference herein. Secure channel148 can be or include, for example, a secure socket layer (SSL)connection, a channel established using a public/private keyinfrastructure, and/or other connections, channels, or protocols.Managed network 116 can include, as shown, a set of supervisory hosts112, a set of targets 180, and/or other machines, devices, clients,and/or other hardware, software, storage or other resources.

While secure channel 148 is illustratively shown as one channel tomanaged network 116 or devices therein, it will be understood that inembodiments, secure channel 148 can comprise multiple channels orconnections. In embodiments, secure channel 148 can instead be replacedby a non-secure channel or connection. In general, network managementplatform 102 can communicate with the managed network 116 and itsconstituent machines and resources, which can for instance comprisepersonal computers, servers, network-enable devices, virtual machines,and/or other devices, and manage the security of those machines underthe supervision of network management platform 102. The networkmanagement platform 102 can host a set of engines, logic, and/or otherresources to interrogate managed network 116 and identify softwaredependencies, reverse kickstart files, and/or network-wide restorationdata or policies to manage the tracking, backup, and restoration ofmanaged network 116 and/or its constituent nodes, machines, andresources. Network management platform 102 can, in embodiments as shown,host engines or logic including dependency engine 186, reverse kickstartgenerator 188, and network reconstruction engine 190. Network managementplatform 102 can communicate with network store 104 to establish,maintain and store dependency map 162, set of reverse kickstart files166, and network reconstruction data 168. Other logic and data storescan be used.

The network management platform 102 can also for instance establish aset of security policies for managed machines in its domain, includingfor example an access control list (ACL) and/or other policies, lists,or parameters for the maintenance and management of managed network 116.Security policies and other data can for instance be stored in networkstore 104.

Network management platform 102 can establish secure connection 148 orother connection to managed network 116, and conduct network scanning,backup and restoration operations, according to various embodimentsdescribed herein.

According to embodiments in one regard, network management platform 102can operate to connect to a given one or more of managed network 116 toprobe managed network 116 for software-based dependencies in two or morenodes in the network. As for example more particularly shown in FIG. 2,network management platform 102 can host a dependency engine 186 tointerrogate managed network 116 and identify software-based dependenciesamongst targets, hosts, and/or other nodes in managed network 116.Dependency engine 186 can for instance issue one or more discoverycommand 120 to cause set of targets 180, set of supervisory hosts 112,and/or other nodes in managed network 116 to report applications orother software or services with which those nodes communicate, forinstance to receive input or initiate services. According to variousembodiments, one or more discovery command 120 can probe for, request,and transmit various types of data to dependency engine 186 to generatedependency map 162 based on the responses from nodes in managed network116. One or more discovery command 120 can, for instance, probe forreports on virtual hosts and guests, including what virtual process runson what node or machine. One or more discovery command 120 can likewiseprobe for reports on which nodes or machines have which other machinesin an SSH (Secure Shell protocol) authorized keys file, and/or whichtargets in set of targets 180 may have received authentication tocommunicate with/act as a local supervisory node to other low-leveltargets. One or more discovery command 120 can, for instance, probe forreports on what configuration files indicate that network services, suchas, for instance, sendmail, dns, syslog, or other services, referenceother nodes or machines. One or more discovery command 120 can, for yetfurther instance, probe for reports on what network connections arepresent in a given node or machine, analogous to a “netstat—a-n”command. Other commands, requests, reports, or other probes can be used.

After receiving responses to one or more discovery command 120, networkmanagement platform 102 can build dependency map 162 encoding thesoftware-based dependencies between set of target 180, set ofsupervisory hosts 112, and/or other nodes in managed network 116.Dependency map 162 can, for example, be configured as an ordered list, atree, a graph, a database, a spreadsheet, and/or other data structure orcoding. Dependency map 162 can encode relationships between software,services, and/or nodes of managed network 116, for instance to recordthat “Software Application A running on node 44 requires SoftwareApplication B running on node 32,” or other orderings or relations.According to embodiments in further regards, network management platform102 can thereby access dependency map 162 and reconstruct an ordered setof software installations and/or machine re-initializations to becarried out after an interruption in managed network 116, such as aphysical disaster, security intrusion, or other event. Networkmanagement platform 102 can also operate on dependency map 162 toexamine managed network 116 for security, configuration or issues,and/or carry out cloning operations for any nodes in the network, or thenetwork itself. Because necessary relations between software, servicesand/or nodes can be effectively encoded in dependency map 162, softwarerestoration in a logically necessary order can be generated at anyneeded time, enhancing the security and reliability of managed network116. According to embodiments in further regards, network managementplatform 102 can operate to connect to managed network 116 and extractor build a reverse kickstart file 166, as also for instance illustratedin FIG. 2.

In embodiments as shown, network management platform 102 can issue oneor more discovery commands 120 to locate any original kickstart filesgenerated during an installation or initialization process for any nodeof managed network 116. The kickstart files which one or more discoverycommands 120 seek out can be kickstart files and related data such asthat described in co-pending U.S. patent application Ser. No. 11/763,315and U.S. patent application Ser. No. 11/763,333, the disclosures ofwhich are incorporated herein, in their entirety, by reference.According to various embodiments, network management platform 102 canlocate any kickstart file copied by the installer and perform otheroperations using reverse kickstart generator 188, or other logic. Ifpresent, in embodiments “/root/anaconda.ks can be used as a base pointto locate any kickstart files. Network management platform 102 canfurther access a package management tool or application programminginterfaces (APIs), such as “rpm-va” or yum-based protocols, to determinewhat files that were originally present in installation packages havebeen user-modified. If user-modified files are found, those files can beembedded in reverse kickstart file 166, which in embodiments can bestored to “% post” or other locations. Network management platform 102can further scan managed network, for instance using available storageAPIs, to detect mounted file systems in a subject node and regenerate anew section of reverse kickstart file 166 that represents the storagesection of the installation. This section can, in embodiments, replacethe section in the original kickstart file whose image is beingextracted. In embodiments, network mounted file systems can also bedetected, and for instance stored to “% post” or other locations.

In embodiments, network management platform can likewise embed/includeany authorized keys in the reverse kickstart file 166, as well as anyfiles not controlled by a package management tool. In embodiments,instead of embedding/including said files in reverse kickstart file 166,that data can be stored to a backup system (such as, for example, baculaor rdiff-backup) and be made to include in the reverse kickstart file166 the paths/commands needed to restore them. Once the reversekickstart file 166 is generated, it can then be used stand alone or witha provisioning platform 170 to recreate the systems, in currentconfigurations, from scratch, effectively automatically reverseengineering their configuration from their current state. The systemsadministrator can later adjust reverse kickstart 166 as needed to beginmaintaining and updating captured systems via that mechanism, or usethat resource to clone or restore more systems as needed, for instancefor disaster recovery purposes.

According to embodiments in one regard, network management platform 102can operate to connect to a given one or more of managed network 116 togenerate a reconstruction of managed network 116 in the event of asignificant or large-scale network malfunction, intrusion, or disaster.As for example also more particularly shown in FIG. 2, networkmanagement engine 102 can host network reconstruction engine 190communicating with network reconstruction data 168 to perform an orderedrestoration of a portion or all of managed network. In embodiments asshown, network reconstruction engine 190 can incorporate and/or accessboth reverse kickstart files and software dependency mappings asdescribed herein, to perform a comprehensive or large-sale restorationof managed network 116 in a logically structured physical order. Inembodiments, network management engine 102 via network reconstructionengine 190 can operate to generate a set of reconstruction commands 172by accessing dependency map 162, reverse kickstart file 166, networkreconstruction data 168, and/or other data or resources. In embodiments,the network reconstruction engine 190 can access dependency map 162, andidentify a set of ordered nodes to restore to managed network 116. Foreach node, network reconstruction engine 190 can access a reversekickstart file 166 or other source to re-provision the softwareresources of that node, or otherwise restore that node to managednetwork 116. Some or all of the restoration or re-provisioning of thenodes of managed network 116 can be performed by a provisioning platform170, such as that described in the aforementioned co-pending U.S. patentapplication Ser. No. 11/763,315 and U.S. patent application Ser. No.11/763,333, or other platforms or systems. In embodiments, files forrestoration can be served from a backup server or system, if file sizesdictate. Once a network-wide or complete datacenter restoration has beenperformed in dependency or other order, network management platform 102can execute one or more validation or debugging tests, using for examplea secure connection and related resources such as those described in theaforementioned U.S. patent application Ser. No. 12/130,424, filed May30, 2008, entitled “Systems and Methods for Remote Management ofNetworked Systems Using Secure Modular Platform.” Other networkmanagement platforms or systems can be used.

FIG. 3 illustrates an exemplary diagram of hardware and other resourcesthat can be incorporated in a network management platform 102 configuredto communicate with managed network 116 and/or other resources,according to embodiments. In embodiments as shown, the networkmanagement platform 102 can comprise a processor 124 communicating withmemory 126, such as electronic random access memory, operating undercontrol of or in conjunction with operating system 130. Operating system130 can be, for example, a distribution of the Linux™ operating system,the Unix™ operating system, or other open-source or proprietaryoperating system or platform. Processor 124 also communicates with anetwork store 104, such as a database stored on a local hard drive.Processor 124 further communicates with network interface 128, such asan Ethernet or wireless data connection, which in turn communicates withone or more networks 110, such as the Internet or other public orprivate networks. Processor 124 also communicates with dependency engine186, reverse kickstart generator 188, and network reconstruction engine190, to execute control logic and perform management and restorationprocesses described herein. Other configurations of the networkmanagement platform 102, associated network connections, and otherhardware and software resources are possible. While FIG. 3 illustratesnetwork management platform 102 as a standalone system comprises acombination of hardware and software, network management platform 102can also be implemented as a software application or program capable ofbeing executed by a conventional computer platform. Likewise, networkmanagement platform 102 can also be implemented as a software module orprogram module capable of being incorporated in other softwareapplications and programs. In either case, network management platform102 can be implemented in any type of conventional proprietary oropen-source computer language.

FIG. 4 illustrates a flowchart of processing to manage softwaredependency and network restoration, according to various embodiments. In402, processing can begin. In 404, a secure connection 148 or otherconnection(s) can be established from network management platform 102 tomanaged network 116. In 406, one or more discovery command 120 can beissued from network management platform 102 to hosts, targets, and/orother nodes in managed network 116 to obtain a report of software and/orservices upon which each node depends or requires. In 408, networkmanagement platform 102 can generate a dependency map 162 indicating thedependency order of relationship between each node and/or its softwarecomplement and other nodes and their software complement in managednetwork 116. Dependency map 162 can be generated, for example, in theform of an ordered list of nodes and/or applications or other software,a tree, a linked list, a graph, a spreadsheet, a database, and/or otherdata structure. In 410, network management platform 102 can initiate asoftware reconstruction, re-installation, recovery, or otherprovisioning or installation process on managed network 116. In 412,network management platform 102 can extract a map, graph, spreadsheet,or other representation or encoding of dependency relationships betweennodes in managed network 116 and/or the software, services and/or otherresources or processes installed, hosted, or accessed on nodes ofmanaged network 116. In 414, network management platform 102 and/orother logic can identify an ordering or other relationship of the nodesof managed network 116 to be rebuilt or re-installed using dependencymap 162 and/or other data. In 416, a re-provisioning or other softwarere-installation process can be executed on managed network 116, forinstance, to provision or install operating systems, applications, data,services, and/or other software to nodes of managed network 118. In 418,a record of the re-installation activity can be generated and/or stored,as appropriate. In 420, as understood by persons skilled in the artsprocessing can repeat, return to a prior processing point, jump to afurther processing point, or end.

FIG. 5 illustrates a flowchart of processing to manage the generation ofa reverse kickstart or other reverse installation file, according tovarious embodiments. In 502, processing can begin. In 504, networkmanagement platform 102 can search managed network 116 to locate anykickstart or other installation file left over or copied by aninstallation process on nodes of managed network 116. In 506, a reversekickstart file 166 can be created/initialized. In 508, networkmanagement platform 102 can use a package management tool and/or othertool or resource to inspect/identify any user-modified files located onthe target machine or other node for which a reverse kickstart file 166or other reverse installation file is being generated.

In 510, network management platform 102 can located a mounted filesystem(s) and regenerate a new section of the kickstart filerepresenting a storage section of the installation. In 512, the storagepart of the original installation file can be replaced, and/or added orinserted in reverse kickstart file 166. In 514, network managementplatform 102 can generate a record of mounted file systems on the nodeassociated with reverse kickstart file 166. In 516, any authorized keysor other security credentials from the subject node can be embedded inreverse kickstart file 166, and/or the security data can be stored to abackup system in which the security data along with paths, commands,and/or keys needed to restore the node can be inserted. In 518, anyfiles not detected or controlled by the package management tool used bynetwork management platform 102 can be embedded reverse kickstart file166, or those files can be stored to a backup system in which thosefiles along with paths, commands, and/or keys needed to restore the nodecan be inserted. In 520, the network management platform 102 can accessreverse kickstart file 166 and initiate a machine restoration processfor one or more nodes in managed network 116, as appropriate. In 522, asunderstood by persons skilled in the art, processing can repeat, returnto a prior processing point, jump to a further processing point, or end.

FIG. 6 illustrates a flowchart of processing to perform network-scalerestoration, according to various embodiments. In 602, processing canbegin. In 604, a recovery process for a managed network 116 and itscomponents, and/or other datacenter entity can be initiated. In 606, afirst node or nodes required for network recovery can be identifiedbased on dependency map 166, for instance, by identifying thelowest/highest node in managed network 116 required by other nodes. In608, a reverse kickstart file 166 and/or other backup files or dataassociated with the first required node(s) can be extracted from networkstore 104 or other location. In 610, network management platform 102 canbuild installation file(s) for the first required node(s) can be builtfrom reverse kickstart file 166 and/or other data.

In 612, the re-provisioning or re-installation of the first requirednode(s) can be initiated using a provisioning platform 170 and/or othertools or resources. In embodiments, provisioning platform 170 andrelated processes can be or include those described in theaforementioned copending U.S. patent application Ser. No. 11/763,315 andU.S. patent application Ser. No. 11/763,333. In 614, the identificationof a next required node(s) based on dependency map 162 can bebegun/repeated, and the extraction of associated reverse kickstart file166 can be begun/repeated, until the last node of managed network 116 isprocessed/re-installed. In 616, the re-installation of all nodesrecovered in managed network 116 can be verified via network managementplatform 102 after all nodes have been processed. In 618, networkmanagement platform 102 can generate a record of re-installation orrecovery activity, as appropriate. In 620, as understood by personsskilled in the art, processing can repeat, return to a prior processingpoint, jump to a further processing point, or end.

The foregoing description is illustrative, and variations inconfiguration and implementation may occur to persons skilled in theart. For example, while embodiments have been described in which asingle network management platform 102 manages and maintains managednetwork 116, in embodiments, multiple engines, servers, or otherentities can cooperate to perform network management functions. Forfurther example, while embodiments have been described in whichrestoration, dependency, and/or other operations can be performed on asingle host or target, in embodiments, multiple diagnostic targets or anentire group of managed machines can be operated on at one time ortogether. Other resources described as singular or integrated in someembodiments can in embodiments be plural or distributed, and resourcesdescribed as embodiments as multiple or distributed can in embodimentsbe combined. The scope of the present teachings is accordingly intendedto be limited only by the following claims

What is claimed is:
 1. A method comprising: issuing a discovery commandto a plurality of nodes of a network, the discovery command requestinginformation about dependencies between software installed on theplurality of nodes; receiving responses to the discovery command fromthe plurality of nodes of the network, the responses comprising theinformation about the dependencies; generating, based on the responses,a dependency map representing a plurality of dependency relationshipsbetween the software installed on the plurality of nodes of the network;determining an ordered set comprising: software installations for eachsoftware installed on the plurality of nodes, comprising a firstsoftware and second software, wherein installing the first software andthe second software comprises retrieving a first reverse automaticinstallation file and a second reverse automatic installation file, anda machine re-initialization order to be carried out in view of thedependency map after an interruption in the managed network; saving theordered set as network reconstruction data; installing, by a processorand according to the ordered set in the network reconstruction data, thefirst software on a first node of the plurality of nodes and the secondsoftware on a second node of the plurality of nodes; andre-initializing, after an interruption, machines in the network in asequential order according to the software installations and machinere-initialization order determined in the ordered set.
 2. The method ofclaim 1, further comprising storing a record of the installation of thefirst software and the second software.
 3. The method of claim 1,wherein the dependency map comprises at least one of a tree, a linkedlist, a table, or a database.
 4. The method of claim 1, wherein theplurality of dependency relationships comprises a representation of afirst plurality of software applications whose output comprises input toa second plurality of software applications.
 5. The method of claim 1,wherein the plurality of dependency relationships comprises arepresentation of a first plurality of software applications whosenetwork-enabled services are accessed by a second plurality of softwareapplications.
 6. The method of claim 1, wherein installing the firstsoftware and the second software comprises retrieving a first reversekickstart file and a second reverse kickstart file.
 7. A systemcomprising: a memory to store a dependency map representing a pluralityof dependency relationships between software installed on a plurality ofnodes of a network; and a processor coupled to the memory, the processorto: issue a discovery command to the plurality of nodes of the network,the discovery command requesting information about dependencies betweensoftware installed on the plurality of nodes; receiving responses to thediscovery command from the plurality of nodes of the network, theresponses comprising the information about the dependencies; generate,based on the responses, the dependency map; determine an ordered setcomprising: software installations for each software installed on theplurality of nodes, comprising a first software and second software,wherein the processor is to install the first software and the secondsoftware by retrieving a first reverse automatic installation file and asecond reverse automatic installation file from the memory, and amachine re-initialization order to be carried out in view of thedependency map after an interruption in the managed network; save theordered set as network reconstruction data; install, according to theordered set in the network reconstruction data, the first software on afirst node of the plurality of nodes and the second software on a secondnode of the plurality of nodes; and re-initialize, after aninterruption, machines in the network in a sequential order according tothe software installations and machine re-initialization orderdetermined in the ordered set.
 8. The system of claim 7, wherein theprocessor is further to store a record of the installation of the firstsoftware and the second software.
 9. The system of claim 7, wherein thedependency map comprises at least one of a tree, a linked list, a table,or a database.
 10. The system of claim 7, wherein the plurality ofdependency relationships comprises a representation of a first pluralityof software applications whose output comprises input to a secondplurality of software applications.
 11. The system of claim 7, whereinthe plurality of dependency relationships comprises a representation ofa first plurality of software applications whose network-enabledservices are accessed by a second plurality of software applications.12. The system of claim 7, wherein the processor is to install the firstsoftware and the second software by retrieving a first reverse kickstartfile and a second reverse kickstart file from the memory.
 13. Anon-transitory computer readable storage medium having instructionsencoded thereon which, when executed by a processor, cause the processorto: issue a discovery command to a plurality of nodes of a network, thediscovery command requesting information about dependencies betweensoftware installed on the plurality of nodes; receive responses to thediscovery command from the plurality of nodes of the network, theresponses comprising the information about the dependencies; generate,in view of the responses, a dependency map representing a plurality ofdependency relationships between the software installed on the pluralityof nodes of the network; determine an ordered set comprising: softwareinstallations for each software installed on the plurality of nodes,comprising a first software and second software, wherein installing thefirst software and the second software comprises retrieving a firstreverse automatic installation file and a second reverse automaticinstallation file, and a machine re-initialization order to be carriedout in view of the dependency map after an interruption in the managednetwork; saving the ordered set as network reconstruction data; install,by the processor and according to the ordered set in the networkreconstruction data, the first software on a first node of the pluralityof nodes and the second software on a second node of the plurality ofnodes; and re-initialize, after an interruption, machines in the networkin a sequential order according to the software installations andmachine re-initialization order determined in the ordered set.
 14. Thenon-transitory computer readable medium of claim 13, wherein theoperations to further cause the processing device to store a record ofthe installation of the first software and the second software.
 15. Thenon-transitory computer readable medium of claim 13, wherein thedependency map comprises at least one of a tree, a linked list, a table,or a database.
 16. The non-transitory computer readable medium of claim13, wherein the plurality of dependency relationships comprises arepresentation of a first plurality of software applications whoseoutput comprises input to a second plurality of software applications.17. The non-transitory computer readable medium of claim 13, wherein theplurality of dependency relationships comprises a representation of afirst plurality of software applications whose network-enabled servicesare accessed by a second plurality of software applications.
 18. Thenon-transitory computer readable medium of claim 13, wherein to installthe first software and the second software the processing device toretrieve a first reverse kickstart file and a second reverse kickstartfile.